持续剖析可以有效发现应用程序中因为CPU导致的瓶颈问题,并且按照方法名称、类名称和行号进行细分统计,最终协助开发者优化程序、降低延迟、增加吞吐、节约成本。本文介绍如何查看持续剖析数据。
查看持续剖析
登录ARMS控制台,在左侧导航栏单击 。
在顶部菜单栏,选择地域。
在应用列表页面单击目标应用。
在上方导航栏选择
。选择剖析类型,查看单个实例的CPU Profiling数据。
当前持续剖析的能力是基于eBPF实现的,因为无侵入的特点,针对Go等有Debug符号信息的语言,Profiling的数据能够显示具体的函数调用,如果遇到unknown的函数,表示当前函数无法在内核中找到对应的符号表信息。
Self列表示方法在自身的调用栈中所消耗的时间或资源,不包括其子方法调用所消耗的时间或资源。可以用于识别哪些方法在自身内部花费了大量的时间或资源。
Total列包含方法自身消耗的时间或资源,以及其所有子方法调用所消耗的时间或资源。可以帮助了解整个方法调用栈中哪些方法贡献了最多的时间或资源。
如需排查具体的热点代码逻辑,可以通过重点关注Self列或直接查看右侧火焰图中底部的较宽火苗从中定位到高耗时的业务方法,较宽火苗是引发上层耗时高的根源,一般是系统性能的瓶颈所在,您可以重点关注。
联系我们
如果您在使用应用监控 eBPF 版中有任何问题,请联系应用监控 eBPF 版答疑钉钉群(群号:35568145)获取帮助。
相关文档
如果需要了解更多Java程序中因CPU、内存和IO导致的问题,可以使用应用监控的持续剖析功能。更多信息,请参见接入持续剖析功能。
文档内容是否对您有帮助?